package com.sunchen.asc.service.item.repository;

import com.sunchen.asc.service.item.domain.Item;
import com.sunchen.asc.service.item.vo.ItemVo;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;

import java.util.List;


public interface ItemRepository extends JpaRepository<Item,Long> , JpaSpecificationExecutor<Item> {

    Long countByAcceptDeptIdAndDeleteFlag(Long deptId,int deleteFlag);

    Long countByIdAndDeleteFlag(Long parentId, int i);

    @Query("select new com.sunchen.asc.service.item.vo.ItemVo(t.id,t.code,t.name,t.parentId,t.hasChild,t.titleId,t.acceptDeptId,t.acceptDeptName,t.toFace,t.chargeFlag,t.serviceObject,t.lifeCycle,t.itemType,t.addressId,t.status,t.workCode,t.level,t.basis,t.power,t.childCount,t.onlineFlag,t.titleType,t.itemMark) from Item t where t.id = ?1")
    ItemVo getVo(Long id);

    @Query("select new com.sunchen.asc.service.item.vo.ItemVo(t.id,t.code,t.name,t.parentId,t.hasChild,t.titleId,t.acceptDeptId,t.acceptDeptName,t.toFace,t.chargeFlag,t.serviceObject,t.lifeCycle,t.itemType,t.addressId,t.status,t.workCode,t.level,t.basis,t.power,t.childCount,t.onlineFlag,t.titleType,t.itemMark) from Item t where t.parentId = ?1 and t.deleteFlag = 0 and t.status = 1")
    List<ItemVo> getSonVo(Long id);
}
